Electronic speed control programming

ABSTRACT

A method and apparatus for programming an electronic speed controller for a radio controlled model including a programmer for interfacing a personal computer to the RX port of the electronic speed controller. The electronic speed controller software may be updated, modified or replaced through the RX port.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority fromdivisional application Ser. No. 12/609,909, filed Oct. 30, 2009,entitled ELECTRONIC SPEED CONTROL PROGRAMMING, which claims the benefitof nonprovisional application Ser. No. 11/361,822, filed Feb. 24, 2006,entitled ELECTRONIC SPEED CONTROL PROGRAMMING, which claims the benefitof U.S. provisional Application Ser. No. 60/656,047 filed on Feb. 24,2005. Application Ser. Nos. 12/609,909, 11/361,822, and 60/656,047 arehereby incorporated by reference in their entirety.

FIELD OF THE INVENTION

The present invention relates to a method and apparatus for programmingan electronic speed control and, more particularly, to a method andapparatus for programming an electronic speed control through an RXreceive control port.

BACKGROUND OF THE INVENTION

Radio controlled models, such as airplanes, helicopters, boats and cars,are known in the art. Battery-powered RC models include a battery, adirect current (DC) motor, a radio receiver, and an electronic speedcontrol. Electronic speed controls for DC motors typically include amicroprocessor with a memory or firmware. Most electronic speed controlsare preprogrammed at the manufacturer for a particular application andwith a fixed set of instructions or functions. These electronic speedcontrols typically have no means for reprogramming the memory. Otherelectronic speed controls may include programmable memory such as EEPROMor flash memory and a dedicated programming port to enable updating ofthe software functions or to correct programming errors.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus for reprogrammingan electronic speed control (“ESC”) through the receive (“RX”) port ofan electric radio controlled model vehicle.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram of a radio controlled model controlcircuit.

FIG. 2 is a functional block diagram of an electronic speed controlcircuit interfaced with a programmer.

FIG. 3 is a circuit diagram of the ESC programmer interface.

FIG. 4 is a circuit diagram of another embodiment of the ESC programmerinterface.

DETAILED DESCRIPTION

Referring to FIG. 1, a block diagram of a radio controlled model controlcircuit is generally indicated by reference numeral 10. RC model controlcircuit 10 includes an electronic speed controller (ESC) 12, a powersupply such as a battery 14, a DC motor 16 a radio receiver circuit 18and an antenna 20. Radio receiver 18 is connected to the electronicspeed controller 12 through line 22 and connector 24. In a typicalapplication, the components of the radio controlled model controlcircuit 10 are mounted in a radio controlled model such as an airplane,for example. The antenna 20 and receiver 18 receive control commandsfrom a transmitter (not shown) under the control of a user, and transmitthe commands to the electronic speed controller 12 via line 22 through athree-pin connector 24. Electronic speed controller 12 includes amicroprocessor, program memory and associated electronic components (notshown). In response to commands received from the receiver 18, theelectronic speed controller 12 applies power from battery 14 to DC motor16. Electronic speed controller 12 controls the timing and duration ofvoltage pulses applied to the DC motor 16 as necessary in response tothe commands sent from the transmitter.

Referring to FIG. 2, a programmer adapter 26 may be connected to theelectronic speed controller 12 using the same connector 24 and anadapter cable 28 to reprogram the electronic speed controller 12,discussed in detail hereinbelow. Programmer 26 may connect to a USB orserial port, for example, on a personal computer 30 via cable 32.

In greater detail referring to FIGS. 2 and 3, programmer 26 includes abi-directional signal line 34 connected to a send buffer 36 and areceive buffer 38. A directional signal line 40 is connected to each ofthe buffers 36 and 38 to enable or disable the respective buffer. Poweron lines 42 and 44 and ground on line 46 may be provided through the USBcable 32 from the USB port on the personal computer 30, or may besupplied by the battery 14 connected to ESC 12, for example.

The electronic speed controller 12 includes a microprocessor 47, and anESC interface 48. The ESC interface 48 includes a buffer circuit similarto the buffer circuit for the programmer 26. A receive buffer 50 and asend buffer 52 are connected to a bidirectional signal line 54 fromprogrammer 26 and a signal line 56 from the microprocessor 47. Adirection signal line 58 is connected to each of the buffers 50 and 52to enable or disable the respective buffer.

To reprogram the firmware in the ESC 12, the battery 14 may bedisconnected from the ESC 12. The programmer 26 is connected to a USB orserial port of computer 30 with cable 32. Cable 28 is then connected toconnector 24 of the ESC 12.

When power is applied to the ESC 12 on line 44, the ESC 12 determinesthe function of the port 24, i.e., whether it is connected to thereceiver 18 or connected to the programmer 26. If the signal on line 54is an activation signal such as a consistent high voltage, then the ESC12 is connected to the programmer 26 and will enter a programming mode.The consistent high level is generated by the pull-up resistor 60 online 42 and connected to line 54. If a high voltage signal is notdetected by the ESC 12 on line 54, then the ESC 12 is connected to thereceiver 18 and will use the port 24 as a normal, unidirectional RX portby setting the direction line 58 on the ESC 12 low. The power 44 andground 46 lines through the RX port 24 are used to power the ESC 12 andset a consistent ground level.

Once the ESC 12 enters the programming mode, the signal line 54 istreated as a single wire bidirectional bus. The PC 30 initiates allcommunications with the ESC 12 through the programmer 26. Either the ESC12 or the programmer 26 may put data on line 54 by actively pulling itto ground to indicate a low signal or by going into a high-Z state andallowing the pull-up resistor 60 on line 42 to pull the line 54 to ahigh signal level. Because there is no common clock signal between theESC 12 and the PC 30, data is input on line 54 and read from line 54 ina predetermined sequence. The PC 30 is responsible for negotiations andcontrol of the ESC 12.

Communication over the bus 54 is accomplished using data packets. Allpackets begin with a synchronization start field, followed by a packetidentifier. The packet identifier indicates the type of packet such as atoken, data or handshake, for example. An address field specifies thefunction, via its address, that is either the source or destination of adata packet, followed by the endpoint field. A data field includes anintegral number of bytes depending on the packet identifier. A cyclicredundancy check or checksum field is used to ensure that the data istransmitted and received correctly.

When power is detected by the ESC 12 on line 54, the ESC 12 sends out astart or connect byte of data on line 54 and waits for a response fromPC 30. If a response is not received within a predetermined amount oftime, such as 10 milliseconds for example, the ESC 12 sends another byteof data on line 54. This continues until the PC 30 responds or a maximumnumber of retries is exceeded, for example.

More particularly, when the programmer 26 is initially connected to theESC 12 through RX port 24, the PC 30 waits to receive the start orconnect byte from the ESC 12. Once the start or connect byte isreceived, the PC 30 sends a 16-byte data packet to the ESC 12.

Typically, the first data packet includes instructions to reprogram orupdate the communication software on the ESC 12, for example. Once thetask is completed, the ESC 12 sends an acknowledgment along with achecksum. If the checksum is incorrect, the PC 30 ignores the responsefrom the ESC 12 and sends the same data packet again.

Once the communication software in the ESC 12 is updated, if necessary,the motor controller software may be updated. Some of the commands thatmay be sent from the PC 30 to the ESC 12 include Erase Flash to erasethe contents of the flash memory beginning at a specified memory addressand Program Flash to program the flash memory with program databeginning at a specified memory address, for example.

Using the RX port 24 and programmer 26 interface, program parameters orsettings stored in the firmware on the ESC 12 may be modified usingsoftware loaded on the personal computer 30. Parameters such as thecutoff voltage, cutoff type, brake type, throttle type, soft start,motor settings, current, pulse frequency and rotation direction may bemodified or adjusted, for example.

User upgradeable firmware on the ESC 12 allows the user to incorporateproduct improvements into existing controllers without returning thecontroller to the manufacturer or purchasing another controller. Theuser may add new functionality to the controller for a specificapplication or may reconfigure the controller for another applicationand use such as changing from airplane firmware to helicopter or racecar firmware, for example. Additionally, bug fixes and upgrades may beeasily, quickly and inexpensively distributed to end users.

Referring to FIG. 4, another embodiment of an ESC programmer interfacecircuit is illustrated. In both the programmer 80 and ESC 82, a MOS FETtransistor 84 and 86, respectively, each with an open drain output 88and 90, respectively, is used to drive an RX signal line 92. Componentscorresponding in function to components designated in FIGS. 1-3 aredesignated with the same reference numerals with the addition of the “a”notation. As described hereinabove for line 54, line 92 is abidirectional bus for communication between the ESC 12 and the PC 30.

It should be understood that while certain forms of this invention havebeen illustrated and described, it is not limited thereto except insofaras such limitations are included in the following claims.

Having thus described the invention, what is claimed as new and desiredto be secured by Letters Patent is as follows:
 1. A method forcontrolling a radio controlled vehicle having a battery, a motor and anelectronic speed controller located in the radio controlled vehicle,wherein the electronic speed controller comprises a microprocessor and aradio receiver port, the method comprising: storing firmware data withinmemory of the electronic speed controller; applying power received fromthe battery to the motor of the radio controlled vehicle by controllingtiming and duration of voltage pulses based on the firmware data; andupdating the firmware data by monitoring a wired interface of the radioreceiver port, by determining a signal is present on the radio receiverport indicating a programming mode, and by communicating through theradio receiver port during a programming mode to receive replacementfirmware data through the wired interface of the radio receiver portfrom an external device.
 2. The method of claim 1, wherein thereplacement firmware data comprises program parameters.
 3. The method ofclaim 1, wherein the replacement firmware data comprises productimprovement firmware.
 4. The method of claim 1, wherein the replacementfirmware data comprises firmware with new functionality.
 5. A method forcontrolling a radio controlled vehicle having a battery, a motor, and anelectronic speed controller located in the radio controlled vehicle,wherein the electronic speed controller comprises a microprocessor and aradio receiver port, the method comprising: storing firmware data withinmemory of the electronic speed controller; monitoring a wired interfaceof the radio receiver port; determining a signal is present on the radioreceiver port indicating a programming mode; communicating through thewired interface of the radio receiver port to receive replacementfirmware data from an external device; and applying power received fromthe battery to the motor of the radio controlled vehicle utilizing thereplacement firmware data by controlling timing and duration of voltagepulses.
 6. The method of claim 5, wherein the replacement firmware datacomprises program parameters.
 7. The method of claim 5, wherein thereplacement firmware data comprises product improvement firmware.
 8. Themethod of claim 5, wherein the replacement firmware data comprisesfirmware with new functionality.